package com.cash.channel.api.service;

import com.cash.channel.api.exception.CashChannelException;
import com.cash.channel.api.model.channel.ChannelModel;
import com.cash.channel.api.model.channel.RequireParam;
import com.cash.common.model.Result;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface ChannelService {

    Result<ChannelModel> saveChannelInfoByCode(ChannelModel channelModel) throws CashChannelException;

    Result<List> findChangeLogList(String channelCode);

    Result getChangeLogByChangeId(Integer changeId);

    Result<Map<String, Object>> findChangeList(String channelName, Integer status, Integer page, Integer rows) throws CashChannelException;

    Result<ChannelModel> findChannelModelByCodeWithCreditPlatform(String channelCode) throws CashChannelException;

    RequireParam findApplySubmitRequireParam(String channelCode) throws CashChannelException;

    void checkChannelQuota(String channel, BigDecimal loanAmount) throws CashChannelException;
    String getChannelCallbackUrl(String channel, String type) throws CashChannelException;
}
